package com.ywk.webFlux.mySql.controller;

import com.ywk.webFlux.mySql.entity.User;
import com.ywk.webFlux.mySql.service.WebFluxByMysqlService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import reactor.core.publisher.Flux;

/**
 * 响应式编程-MySQL篇
 * 参考链接：https://www.jianshu.com/p/d297b049cbb3
 *
 * 传统的数据库操作API（即JDBC）是阻塞读取的规范，在响应式领域并不适用，于是出现了一种新的规范即R2DBC，
 * 全称是"Reactive Relational Database Connectivity"，即响应式关系型数据库连接，它的出现为关系数据库性数据库的响应式读取提供了统一的接口，
 * 老牌的JDBC出现较早，各种数据库基本都支持，而支持R2DBC的数据库当前也在不断增多(说明响应式真的是一种趋势)，
 * 比如Postgres, MSSQL, H2，MySQL都开始陆续支持异步读取，并有了对应的实现R2DBC的驱动
 *
 * @Author zbh
 * @Date 2023/4/28
 */
/*@RestController
@RequestMapping("/webFluxByMysql")*/
public class WebFluxByMysqlController {

    @Autowired
    private WebFluxByMysqlService service;

    @GetMapping("/users")
    public Flux<User> getUsers() {
        return service.findAll();
    }
}
